package cn.tedu.dimanage.donation.service;

import cn.tedu.dimanage.pojo.dto.DonationAddNewDTO;
import cn.tedu.dimanage.pojo.dto.DonationCheckDTO;
import cn.tedu.dimanage.pojo.dto.DonationUpdateDTO;
import cn.tedu.dimanage.pojo.vo.DonationDetailsVO;

import java.util.List;

/**
 * @Classname: IDonationService
 * @Author: bromide
 * @CreateTime: 2022/6/10--11:42
 * @Version: V1.0
 * @Description:
 */
public interface IDonationService {

    /**
     * 添加一个捐赠申请
     * @param donationAddNewDTO 用户提交的捐赠信息
     */
    void addDonation(DonationAddNewDTO donationAddNewDTO);

    /**
     * 查找所有的
     * @return
     */
    List<DonationDetailsVO> selectDonationList(String keyword);

    /**
     * 查找单个用户的捐赠记录
     * @param userId
     * @return
     */
    List<DonationDetailsVO> selectDonationListByUserId(Long userId);

    /**
     * 入库记录
     * @return 所有已经被同意的捐献申请记录
     */
    List<DonationDetailsVO> selectDonationIn(String keyword);

    /**
     * 修改修改捐献物资
     * @param donationCheckDTO
     */
    void updateDonationByAdmin(DonationCheckDTO donationCheckDTO);

    /**
     * 在捐献成功之前,用户修改自己所捐献的物资信息
     * @param donationUpdateDTO
     */
    void updateDonationByUser(DonationUpdateDTO donationUpdateDTO);


    /**
     * 通过id来删除捐献
     * @param id
     * @return
     */
    void deleteDonationById(Long id);

}